home *** CD-ROM | disk | FTP | other *** search
/ Aminet 38 / Aminet 38 (2000)(Schatztruhe)[!][Aug 2000].iso / Aminet / misc / math / libalgo.lha / algomath / src / sortdig.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-30  |  479 b   |  38 lines

  1. /* sorting digits, e.g. 65123 => 12356 */
  2.  
  3. #include "defs.h"
  4.  
  5. int am_sort(int n)
  6. {
  7.     int i,j,x=0;
  8.     int Temp;
  9.     int Ziffer[]={0,0,0,0,0,0,0,0,0,0};
  10.  
  11.     if(n>999999999)
  12.         return n;
  13.  
  14.     if(n < 0){
  15.         n = -n;
  16.         x=1;
  17.         }
  18.  
  19.     for(i = 0; i < 9; i++)
  20.     {
  21.         Temp = 0;
  22.         while(n >= _am_asciiconv[i])
  23.         {
  24.             n -= _am_asciiconv[i];
  25.             Temp++;
  26.         }
  27.         Ziffer[Temp]++;
  28.     }
  29.     Ziffer[n]++;
  30.  
  31.     n = 0;
  32.     for(i = 1; i <= 9; i++)
  33.         for(j = 1; j <= Ziffer[i]; j++)
  34.             n = n * 10 + i;
  35.     if(x)
  36.         return -n;
  37.     return n;
  38. }